package com.example.turingim.handler;

import com.alibaba.fastjson.JSON;
import com.example.turingim.IMServer;
import com.example.turingim.common.ResponseResult;
import com.example.turingim.dto.Command;

import io.netty.channel.ChannelHandlerContext;

public class ConnectionHandler {
    public static void execute(ChannelHandlerContext ctx, Command command) {
        if (IMServer.USERS.containsKey(command.getNickname())) {
            ctx.channel().writeAndFlush(ResponseResult.fail("该用户已上线，请更换昵称后再试"));
            ctx.channel().disconnect();
            return;
        }

        // 把登录用户存进去
        IMServer.USERS.put(command.getNickname(), ctx.channel());

        // 打印相关信息
        ctx.channel().writeAndFlush(ResponseResult.success("与服务端连接建立成功"));
        ctx.channel()
                .writeAndFlush(ResponseResult.success(JSON.toJSONString(IMServer.USERS.keySet())));
    }
}
